Control apparatus for machines such as automobiles, industrial robots, and humanoid robots are now being modularized on a per-function basis. Also, with the arrival of sensors equipped with network functions, it is becoming typical for the client apparatus (i.e., modules) provided in a machine control apparatus to form a network.
In a machine control apparatus that includes such a network, realtime communication and non-realtime communication typically coexist. Realtime communication refers to communication in which data transfer is guaranteed to be completed within a given time interval. Realtime communication may include communication used for feedback control by the machine control apparatus, wherein relatively small amounts of data (on the order of several dozen to several hundred bytes) are periodically (i.e., every few milliseconds) sent and received with extremely low latency.
Realtime communication also includes isochronous communication in protocols such as USB 2.0 and IEEE 1394. In such isochronous communication, guaranteed transfers are scheduled on an extremely short cycle period (several dozen to several hundred microseconds), and several kilobytes of data are transmitted during each transfer. Such isochronous communication is conducted in order to transfer audio, video, or similar data without delays. Herein, USB is an abbreviation of Universal Serial Bus, while IEEE is an abbreviation of the Institute of Electrical and Electronics Engineers.
In contrast to realtime communication, non-realtime communication refers to communication that does not demand realtime performance. Non-realtime communication may include, for example, delivery of application patches, file transfers, and other communication that is comparatively resistant to latency, but which demands high throughput.
Meanwhile, with machine control apparatus that include networks as described earlier, there is a desire to use general-purpose networks (such as Ethernet™, for example) that include routing equipment such as switches along the network paths. The desire to use such networks comes from the perspective of system flexibility, expandability, and ease of setup.
However, with a switch, if a plurality of inputs transferred to the same output terminal exceed the throughput of that output terminal, then a communication queue will develop inside the switch. For this reason, in networks that include switches partway along the network paths, the development of communication queues results in increased communication latency and can even lead to packet loss, thereby making it difficult to suitably execute realtime communication.
In the related art, there exists technology that utilizes the periodicity of realtime communication to make a timewise separation between the intervals during which realtime communication and non-realtime communication are carried out. More specifically, a relay apparatus that relays iso-data packets between client apparatus is provided. When there is competition among a plurality of iso-data packets, a plurality of iso-data packets are bundled together and output successively, thereby shortening the period during which the output of non-iso-data packets is restrained.
There also exists technology for reliably transmitting media data such as audio and video. More specifically, a data transfer method involves reserving in advance the resources (network bandwidth, for example) required to execute data transfer between information transmitting apparatus on a network, and then performing a packet routing processes using the reserved resources.
However, when the related art described above is implemented on a network that connects client apparatus via a plurality of switches, it is difficult to control the stream rates of non-realtime communication on the paths connecting the switches in an environment where realtime communication and non-realtime communication coexist. For this reason, there is a problem in that communication collisions become unavoidable on the paths connecting the switches, and guaranteeing the realtime performance of realtime communication is difficult.
In contrast, if a system configuration that connects client apparatus via a plurality of switches is not implemented, there is a problem in that the maximum number of client apparatuses that can be connected to the system becomes limited, and system flexibility and expandability is reduced.
In the related art described above, it is also conceivable to make a timewise separation between the intervals during which realtime communication and non-realtime communication are carried out, such that while realtime communication is being carried out, non-realtime communication is stopped, and collisions with realtime communication are avoided. However, if all non-realtime communication is stopped during realtime communication, it is anticipated that the overall throughput of the network will drop.